Hugging Face Datasets

Datasets 是一个数据集管理库。能够一行代码加载数据集,进行数据处理,以便在深度学习模型中进行训练。

该库基于 Apache Arrow 格式,可以处理大型数据集,而无需担心内存限制,以实现最佳的速度和效率。

此外,Datasets 还与 Hugging Face Hub 有深度集成,允许你轻松地加载和与更广泛的机器学习社区共享数据集。


加载数据集

Hugging Face Hub 上托管有大量公开数据集。

load_dataset_builder 加载数据集信息,不下载数据集:

from datasets import load_dataset_builder

ds_builder = load_dataset_builder("rotten_tomatoes")
ds_builder.info.description
ds_builder.info.features

load_dataset 下载数据集:

from datasets import load_dataset

dataset = load_dataset("rotten_tomatoes", split="train")

访问数据集

索引:

dataset[0]
dataset[-1]
# 按列名索引
dataset["text"]
dataset[0]["text"]

切片:

dataset[:3]
dataset[3:6]

遍历:

from datasets import load_dataset

iterable_dataset = load_dataset("food101", split="train", streaming=True)
for example in iterable_dataset:
    print(example)
    break

文本预处理

模型无法处理原始文本,因此首先需要通过 Tokenization 将文本转为 Token,而 Token 则由向量表示。

tokenizer 输出:

tokenizer(dataset[0]["text"])
{'input_ids': [101, 1103, 2067, 1110, 17348, 1106, 1129, 1103, 6880, 1432, 112, 188, 1207, 107, 14255, 1389, 107, 1105, 1115, 1119, 112, 188, 1280, 1106, 1294, 170, 24194, 1256, 3407, 1190, 170, 11791, 5253, 188, 1732, 7200, 10947, 12606, 2895, 117, 179, 7766, 118, 172, 15554, 1181, 3498, 6961, 3263, 1137, 188, 1566, 7912, 14516, 6997, 119, 102], 
 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

其中:

批量加速 Tokenization 的写法,将 batched 参数设置为 True

def tokenization(example):
    return tokenizer(example["text"])

dataset = dataset.map(tokenization, batched=True)

网络资源


本文作者:Maeiee

本文链接:Hugging Face Datasets

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!